using B.S.BaseData.ErrorCode;
using MediatR;

namespace B.S.BaseData.Api.Write.Applicantion.Command.OrderCommand
{
    /// <summary>
    /// 删除处方流转订单命令
    /// </summary>
    public class DeletePrescriptionOrderCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 订单编号
        /// </summary>
        public string OrderNumber { get; set; } = string.Empty;
    }

    /// <summary>
    /// 批量删除处方流转订单命令
    /// </summary>
    public class BatchDeletePrescriptionOrderCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 订单编号列表
        /// </summary>
        public List<string> OrderNumbers { get; set; } = new List<string>();
    }

    /// <summary>
    /// 核准发药命令
    /// </summary>
    public class ApproveDispensingCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 订单编号
        /// </summary>
        public string OrderNumber { get; set; } = string.Empty;
    }

    /// <summary>
    /// 更新处方流转订单命令
    /// </summary>
    public class UpdatePrescriptionOrderCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 订单编号
        /// </summary>
        public string OrderNumber { get; set; } = string.Empty;

        /// <summary>
        /// 患者姓名
        /// </summary>
        public string? PatientName { get; set; }

        /// <summary>
        /// 患者性别
        /// </summary>
        public string? PatientGender { get; set; }

        /// <summary>
        /// 患者年龄
        /// </summary>
        public int? PatientAge { get; set; }

        /// <summary>
        /// 患者手机号
        /// </summary>
        public string? PatientPhone { get; set; }

        /// <summary>
        /// 所患疾病
        /// </summary>
        public string? Disease { get; set; }

        /// <summary>
        /// 肝功能状态
        /// </summary>
        public string? LiverFunction { get; set; }

        /// <summary>
        /// 肾功能状态
        /// </summary>
        public string? KidneyFunction { get; set; }

        /// <summary>
        /// 过敏史
        /// </summary>
        public string? AllergyHistory { get; set; }

        /// <summary>
        /// 生育计划或状态
        /// </summary>
        public string? PregnancyStatus { get; set; }

        /// <summary>
        /// 病情描述
        /// </summary>
        public string? SymptomDescription { get; set; }

        /// <summary>
        /// 医生姓名
        /// </summary>
        public string? DoctorName { get; set; }

        /// <summary>
        /// 科室
        /// </summary>
        public string? Department { get; set; }

        /// <summary>
        /// 初步诊断
        /// </summary>
        public string? PreliminaryDiagnosis { get; set; }

        /// <summary>
        /// 处理意见
        /// </summary>
        public string? TreatmentAdvice { get; set; }

        /// <summary>
        /// 订单状态
        /// </summary>
        public string? OrderStatus { get; set; }

        /// <summary>
        /// 应付金额
        /// </summary>
        public decimal? TotalAmount { get; set; }

        /// <summary>
        /// 优惠券金额
        /// </summary>
        public decimal? CouponAmount { get; set; }
    }

    /// <summary>
    /// 药品订单发货命令
    /// </summary>
    public class ShipMedicineOrderCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 订单编号
        /// </summary>
        public string OrderNumber { get; set; } = string.Empty;

        /// <summary>
        /// 物流公司
        /// </summary>
        public string LogisticsCompany { get; set; } = string.Empty;

        /// <summary>
        /// 物流单号
        /// </summary>
        public string TrackingNumber { get; set; } = string.Empty;
    }

    /// <summary>
    /// 确认收货命令
    /// </summary>
    public class ConfirmReceiptCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 订单编号
        /// </summary>
        public string OrderNumber { get; set; } = string.Empty;
    }
} 